﻿
namespace NClass.StubLanguage
{
	public class StubEnum : Core.EnumType
	{
		public StubEnum() : base("NewEnum") { }

		public override Core.EnumValue AddValue(string declaration)
		{
			return new StubEnumValue();
		}

		public override Core.EnumValue ModifyValue(Core.EnumValue value, string declaration)
		{
			return value;
		}

		public override Core.EnumType Clone()
		{
			return new StubEnum();
		}

		public override Core.AccessModifier DefaultAccess { get { return Core.AccessModifier.Default; } }

		public override Core.Language Language { get { return StubLanguage.Instance; } }

		public override string GetDeclaration()
		{
			return Name;
		}
	}

	public class StubEnumValue : Core.EnumValue
	{
		public StubEnumValue() : base(string.Empty) { }

		public override void InitFromString(string declaration)
		{
			// Do Nothing
		}

		protected override Core.EnumValue Clone()
		{
			return new StubEnumValue();
		}

		public override string GetDeclaration()
		{
			return Name;
		}
	}
}
